﻿'''
力扣5：
给你一个字符串 s，找到 s 中最长的 回文 子串。
示例 1：
输入：s = "babad"
输出："bab"
解释："aba" 同样是符合题意的答案。
示例 2：
输入：s = "cbbd"
输出："bb"
提示：
1 <= s.length <= 1000
s 仅由数字和英文字母组成
思路：
动态规划：dp[i][j] = dp[i + 1][j - 1] 如果s[i]=s[j]
'''
try:
    while True:
        #读取输入
        s = input()
        n = len(s)
        if n == 1:
            print(s)
        else:
            dp = [[False] * n for _ in range(n)]
            for i in range(n):
                dp[i][i] = True
            max_len = 1
            begin = 0
            for L in range(2, n + 1):   #长度从2开始枚举
                for i in range(0, n - L +1):    #i从开始到n-L
                    j = i + L - 1
                    
                    if s[i] != s[j]:
                        dp[i][j] = False
                    else:
                        if j - i < 3:       #注意s[i]=s[j],避免长度位2即j-i = 1,dp[i+1][j-1]即长度小于0计算出错的问题
                            dp[i][j] = True
                        else:
                            dp[i][j] = dp[i + 1][j - 1]
                    if dp[i][j] and j - i + 1 > max_len:
                        max_len = j - i + 1
                        begin = i
            print(s[begin: begin + max_len])
except EOFError:
    pass